1. Field of the Invention
The present invention relates to digital computing, and more particularly to an apparatus and method for an equality comparator.
2. Description of the Related Art
An often-useful degenerate form of an adder is an equality comparator, which detects whether two numbers are equal. Comparators are particularly useful in bounds checking situations, where only a binary relationship between two numbers is necessary, since comparators are considerably less complex than full adders. Because a comparator does not utilize sum logic but rather comprises only carry chain logic, it is simpler in structure than a full adder. (An example of a full adder is set forth in co-pending application, U.S. patent Ser. No. 09/206,463 (Our Docket No. 31876.0145), filed Dec. 7, 1998, and entitled "Method and Apparatus for 3-stage 32-bit Adder/Subtractor," hereinafter referred to as "the 3-stage Adder Application.")
N-nary Logic
The present invention utilizes N-nary logic. The N-nary logic family supports a variety of signal encodings, including 1-of-4. The N-nary logic family is described in a copending patent application, U.S. patent application Ser. No. 09/019,355, filed Feb. 5, 1998, and titled "Method and Apparatus for a N-Nary logic Circuit Using 1-of-4 Encoding", which is incorporated herein for all purposes and hereinafter referred to as "The N-nary Patent." In 1-of-4 encoding, four wires are used to indicate one of four possible values. In contrast, traditional static design uses two wires to indicate four values, as is demonstrated in Table 1. In Table 1, the A.sub.0 and A.sub.1 wires are used to indicate the four possible values for operand A: 00, 01, 10, and 11. The two B wires are similarly used to indicate the same four possible values for operand B.
TABLE 1 ______________________________________ A = Decimal B = Decimal A + B = A.sub.1 A.sub.0 B.sub.1 B.sub.0 Value Value A + B Dec. Value ______________________________________ 0 0 0 0 0 0 00 0 0 0 0 1 0 1 01 1 0 0 1 0 0 2 10 2 0 0 1 1 0 3 11 3 0 1 0 0 1 0 01 1 0 1 0 1 1 1 10 2 0 1 1 0 1 2 11 3 0 1 1 1 1 3 00* 0 1 0 0 0 2 0 10 2 1 0 0 1 2 1 11 3 1 0 1 0 2 2 00* 0 1 0 1 1 2 3 01* 1 1 1 0 0 3 0 11 3 1 1 0 1 3 1 00* 0 1 1 1 0 3 2 01* 1 1 1 1 1 3 3 10* 2 ______________________________________
Each output value in the "A+B" column of Table 1 indicated with an asterisk denotes a carry condition where a one has conceptually carried into the next-higher-order bit (the bit position corresponding to a decimal value of four).
"Traditional" dual-rail dynamic logic also uses four wires to represent two bits, but the dual-rail scheme always requires two wires to be asserted. In contrast, N-nary logic only requires assertion of one wire. The benefits of N-nary logic over dual-rail logic, such as reduced power and reduced noise, should be apparent from a reading of The N-nary Patent.
All signals in N-nary logic, including 1-of-4, are of the 1-of-N form where N is any integer greater than one. A 1-of-4 signal requires four wires to encode four values (0-3 inclusive), or the equivalent of two bits (one "dit") of information. More than one wire will never be asserted for a 1-of-N signal. Similarly, N-nary logic requires that a high voltage be asserted for all valid values, even 0. (Some versions of N-nary logic allow a "null" case, where no high voltage is asserted for an N- nary signal, which indicates that the N-nary signal has not yet evaluated, and is not required). Any one N-nary gate may comprise multiple inputs and/or outputs. In such a case, a variety of different N-nary encodings may be employed. For instance, consider a gate that comprises two inputs and two outputs, where the inputs are a 1-of-4 signal and a 1-of-2 signal and the outputs comprise a 1-of-4 signal and a 1-of-3 signal. Various variables, including P, Q, R, and S, may be used to describe the encoding for these inputs and outputs. One may say that one input comprises 1-of-P encoding and the other comprises 1-of-Q encoding, wherein P equals two and Q equals four. Similarly, the variables R and S may be used to describe the outputs. One might say that one output comprises 1-of-R encoding and the other output comprises 1-of-S encoding, wherein R equals four and S equals 3. Through the use of these, and other, additional variables, it is possible to describe multiple N-nary signals that comprise a variety of different encodings.